/*
 * nume: client-to-client-thread-server.h
 * autor: ~D
 * descriere: thread-ul pe care il creaza un client cand se un alt client se conecteaza la el
 * tabela de modificarei
 *   12 iunie 2007 - ~D - prima versiune
 */

#include "client-to-client-thread-server.h"

#include <QtNetwork>

ClientToClientThreadServer::ClientToClientThreadServer( int socketDescriptor, const
        QString &fortune, QObject *parent )
        : QThread( parent ), socketDescriptor( socketDescriptor ), text( fortune ) {}

void ClientToClientThreadServer::run() {

    QTcpSocket tcpSocket;

    if ( !tcpSocket.setSocketDescriptor( socketDescriptor ) ) {
        emit error( tcpSocket.error() );
        return;
    }

    QByteArray block;

    QDataStream out( &block, QIODevice::WriteOnly );
    out.setVersion( QDataStream::Qt_4_0 );
    out << ( quint16 ) 0;
    out << text;
    out.device()->seek( 0 );
    out << ( quint16 )( block.size() - sizeof( quint16 ) );

    tcpSocket.write( block );
    tcpSocket.disconnectFromHost();
    tcpSocket.waitForDisconnected();
}
